// 定义匹配iam_module表结构的Module接口
export interface Module {
  module_id: number  // 模块主键ID，自增长
  module_code: string  // 模块代码，唯一标识（如: user_mgmt, order_mgmt）
  module_name: string  // 模块名称，用于显示
  description?: string  // 模块详细描述
  route_path?: string  // 前端路由路径
  component_path?: string  // 前端组件路径
  icon?: string  // 模块图标标识
  parent_id: number  // 父模块ID（0表示根模块）
  level: number  // 模块层级（1:一级模块, 2:二级模块, ...）
  sort_order: number  // 模块显示排序
  is_active: boolean  // 模块是否激活(1:激活, 0:禁用)
  is_visible: boolean  // 模块是否可见(1:可见, 0:隐藏)
  created_at?: string  // 记录创建时间
  updated_at?: string  // 记录最后更新时间
  created_by?: string  // 记录创建者
  updated_by?: string  // 记录最后更新者
  is_deleted: boolean  // 软删除标志(1:已删除, 0:未删除)
}

// 树形结构的Module类型
export interface ModuleTree extends Module {
  children?: ModuleTree[]
}

// 定义新增模块时不需要的字段类型
export type CreateModuleParams = Omit<Module, 'module_id' | 'created_at' | 'updated_at' | 'is_deleted'>

// 定义更新模块时的部分字段类型
export type UpdateModuleParams = Partial<Module>